/**
 * ProxyClientProxyClient.java
 * 
 * Created Date: 2014年11月24日
 *
 * Copyright (c) Centling Technologies Co., Ltd.
 *
 * This software is the confidential and proprietary information of
 * Centling Technologies Co., Ltd. ("Confidential Information"). You shall not
 * disclose such Confidential Information and shall use it only in accordance
 * with the terms of the license agreement you entered into with
 * Centling Technologies Co., Ltd.
 */
package com.centling.bluecollar.customer.entity;

import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Transient;

import org.hibernate.annotations.GenericGenerator;

/**
 * @author ted.ma
 *
 */
@Entity
@Table(name = "t_proxyClient")
// 代理客户
public class ProxyClient {
	
	private String id;
	private String name;
	
	private String contactWay;// 联系方式
	
	private String devPeople;// 开发人
	
	private String contractBeginTime;// 合同开始时间
	
	private String contractEndTime;// 合同结束时间
	
	private String reserve;// 备注
	
	private Organization organization;  // 公司组织
	
	private List<ProxyBusiness> proxyBusinesses;
	
	private List<ProxyContactInfo> proxyContacInfos;
	
	private List<ProxyKeeper> proxyKeepers;
	
	
	
	
	/**
	 * @return the contractBeginTime
	 */
	public String getContractBeginTime() {
	
		return contractBeginTime;
	}

	
	/**
	 * @param contractBeginTime the contractBeginTime to set
	 */
	public void setContractBeginTime(String contractBeginTime) {
	
		this.contractBeginTime = contractBeginTime;
	}

	
	/**
	 * @return the contractEndTime
	 */
	public String getContractEndTime() {
	
		return contractEndTime;
	}

	
	/**
	 * @param contractEndTime the contractEndTime to set
	 */
	public void setContractEndTime(String contractEndTime) {
	
		this.contractEndTime = contractEndTime;
	}

	/**
	 * @return the proxyBusinesses
	 */
	@Transient
	public List<ProxyBusiness> getProxyBusinesses() {
	
		return proxyBusinesses;
	}
	
	/**
	 * @param proxyBusinesses
	 *            the proxyBusinesses to set
	 */
	public void setProxyBusinesses(List<ProxyBusiness> proxyBusinesses) {
	
		this.proxyBusinesses = proxyBusinesses;
	}
	
	
	
	
	
	/**
	 * @return the proxyKeepers
	 */
	@Transient
	public List<ProxyKeeper> getProxyKeepers() {
	
		return proxyKeepers;
	}


	
	/**
	 * @param proxyKeepers the proxyKeepers to set
	 */
	public void setProxyKeepers(List<ProxyKeeper> proxyKeepers) {
	
		this.proxyKeepers = proxyKeepers;
	}


	/**
	 * @return the proxyContacInfos
	 */
	@Transient
	public List<ProxyContactInfo> getProxyContacInfos() {
	
		return proxyContacInfos;
	}


	
	/**
	 * @param proxyContacInfos the proxyContacInfos to set
	 */
	public void setProxyContacInfos(List<ProxyContactInfo> proxyContacInfos) {
	
		this.proxyContacInfos = proxyContacInfos;
	}


	/**
	 * @return the id
	 */
	@GenericGenerator(name = "idGenerator", strategy = "uuid")
	@Id
	@GeneratedValue(generator = "idGenerator")
	@Column(name = "id", unique = true, nullable = false, length = 50)
	public String getId() {
	
		return id;
	}
	
	/**
	 * @param id
	 *            the id to set
	 */
	public void setId(String id) {
	
		this.id = id;
	}
	
	/**
	 * @return the name
	 */
	@Column(length = 40)
	public String getName() {
	
		return name;
	}
	
	/**
	 * @param name
	 *            the name to set
	 */
	public void setName(String name) {
	
		this.name = name;
	}
	
	/**
	 * @return the contactWay
	 */
	@Column(length = 40)
	public String getContactWay() {
	
		return contactWay;
	}
	
	/**
	 * @param contactWay
	 *            the contactWay to set
	 */
	public void setContactWay(String contactWay) {
	
		this.contactWay = contactWay;
	}
	
	/**
	 * @return the devPeople
	 */
	@Column(length = 40)
	public String getDevPeople() {
	
		return devPeople;
	}
	
	/**
	 * @param devPeople
	 *            the devPeople to set
	 */
	public void setDevPeople(String devPeople) {
	
		this.devPeople = devPeople;
	}
	
	/**
	 * @return the organization
	 */
	@ManyToOne
	@JoinColumn(name = "organizationId")
	public Organization getOrganization() {
	
		return organization;
	}
	
	/**
	 * @param organization
	 *            the organization to set
	 */
	public void setOrganization(Organization organization) {
	
		this.organization = organization;
	}
	
	/**
	 * @return the reserve
	 */
	@Column(length = 400)
	public String getReserve() {
	
		return reserve;
	}
	
	/**
	 * @param reserve
	 *            the reserve to set
	 */
	public void setReserve(String reserve) {
	
		this.reserve = reserve;
	}
	
}
